import type { CommonState, PageReq, PageRes } from '../common/commonApi'
import { useApi } from '@/composables/useApi'

/**
 * 应用角色
 */
export interface AppRole {
  /** 主键 */
  id?: number
  /** 应用类型 */
  appType?: string
  /** 角色名称 */
  name?: string
  /** 角色编码 */
  code?: string
  /** 角色状态 */
  state: CommonState
  /**  角色菜单ID列表 */
  menuIds: number[]
  /** 最近更新事件 */
  updateTime?: string
}

/**
 * 系统角色权限查询参数
 */
export interface AppRoleQuery extends PageReq {
  /** 应用类型 */
  appType?: string
  /** 主键 */
  id?: number
  /** 角色名称 */
  name?: string
  /** 角色状态 */
  state?: CommonState
}

const basePath = '/system/app/role'
export const appRoleApi = {
  queryPage: useApi<AppRoleQuery, PageRes<AppRole>>(`${basePath}/page`).get,
  findDetail: async (id: number) => useApi<any, AppRole>(`${basePath}/${id}`).get(),
  create: useApi<AppRole, AppRole>(`${basePath}`).post,
  modify: useApi<AppRole, AppRole>(`${basePath}`).patch,
  remove: async (id: number) => useApi<null, AppRole>(`${basePath}/${id}`).remove(),
}
